When a web developer develops a web page, the developer may use a framework that relies upon underlying logic to drive components of the page. A representative framework may publish JavaScript libraries that define special application programming interfaces (APIs) useable to define aspects of web page structure and operation. In practice, when a web developer composes a hypertext markup language (HTML) document for a web page, the developer could place in the document a reference to such published JavaScript libraries and could write and include in the document sets of code that will call the JavaScript APIs to control structure and operation of the page in a desired manner when the page is rendered by a browser.
Unfortunately, however, providers of such web development frameworks may change the frameworks from time to time and/or may discontinue support for certain frameworks or framework versions. Further, such a framework or library may become outdated due to a lack of support for modern browsers (which could lead to buggy behavior and/or decreased performance). When this happens, a web developer may be forced to rewrite web pages that made use of the deprecated frameworks, writing new imperative code and making other changes to make use of newer, supported frameworks. But this process can be impractical, especially where the web pages at issue are highly complex.